﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Community.CsharpSqlite.Entity
{

    /*
** An instance of this structure holds information about the
** LIMIT clause of a SELECT statement.
*/

    public struct LimitVal
    {
        public Expr pLimit; /* The LIMIT expression.  NULL if there is no limit */
        public Expr pOffset; /* The OFFSET expression.  NULL if there is none */
    };

    /*
** An instance of this structure is used to store the LIKE,
** GLOB, NOT LIKE, and NOT GLOB operators.
*/

    public struct LikeOp
    {
        public Token eOperator; /* "like" or "glob" or "regexp" */
        public bool not; /* True if the NOT keyword is present */
    };

    /*
** An instance of the following structure describes the event of a
** TRIGGER.  "a" is the event type, one of TokenKeyword.TK_UPDATE, TokenKeyword.TK_INSERT,
** TokenKeyword.TK_DELETE, or TokenKeyword.TK_INSTEAD.  If the event is of the form
**
**      UPDATE ON (a,b,c)
**
** Then the "b" IdList records the list "a,b,c".
*/

    public struct TrigEvent
    {
        public int a;
        public IdList b;
    };

    /*
** An instance of this structure holds the ATTACH key and the key type.
*/

    public struct AttachKey
    {
        public Token key;
        public int type;
    };
}
